home *** CD-ROM | disk | FTP | other *** search
/ 10,000 Great Games / 10,000 Great Games.iso / Product / 66 / data1.cab / Source_Files / Src / Editable.h < prev    next >
C/C++ Source or Header  |  2000-01-16  |  2KB  |  96 lines

  1. class cEditable : public cPositionable
  2. {
  3. public:
  4.     cEditable(cEditable **list, cGameObject *obj, int select);
  5.     ~cEditable();
  6.             
  7.     static void make_editables();
  8.     static void editables_layer_change();
  9.     static void delete_editables();
  10.  
  11.     static void write_editables();
  12.     
  13.     static void set_rectangle(int x, int y);
  14.     static void set_edge_rectangle(int x, int y);
  15.     static void rectangle_to_selection();
  16.  
  17.     static int anything_selected();
  18.     static void unselect_editables();
  19.     static void delete_selected_editables();
  20.  
  21.     static void snap_editables_to_grid();
  22.     static void drag_editables(int dx_back, int dy_back, int dx_game, int dy_game);
  23.     
  24.     static cEditable *find(int x, int y);
  25.         
  26.     virtual void write();
  27.     virtual int check_drag(int dx, int dy);
  28.     virtual void drag(int dx, int dy);
  29.     virtual void remove();
  30.     virtual void create_context_menu(CMenu *menu);
  31.     virtual void execute_context_menu(int id);
  32.  
  33.     cEditable *sub_editables;
  34.     cGameObject *obj;
  35.  
  36.     int selected;    
  37.  
  38. protected:
  39.     static int walk_editables(int (*callback)(cEditable *e));
  40.     int walk_sub_editables(int (*callback)(cEditable *e));
  41. };
  42.  
  43. class cEditableGameObject : public cEditable
  44. {
  45. public:
  46.     cEditableGameObject(cGameObject *obj, int select);
  47.  
  48.     int check_drag(int dx, int dy);
  49.     void drag(int dx, int dy);
  50. };
  51.  
  52. class cEditableWaypoint : public cEditable
  53. {
  54. public:
  55.     cEditableWaypoint(cGameObject *obj, cSpot *waypoint, int select);
  56.  
  57.     void write();
  58.     void remove();
  59.  
  60.     int check_drag(int dx, int dy);
  61.     void drag(int dx, int dy);
  62.     
  63.     void create_context_menu(CMenu *menu);
  64.     void execute_context_menu(int id);
  65.  
  66.     cSpot *waypoint;
  67. };
  68.  
  69. class cEditableMovingStructure : public cEditableGameObject
  70. {
  71. public:
  72.     cEditableMovingStructure(cMovingStructure *obj, int select) : cEditableGameObject(obj, select) {}
  73.  
  74.     void create_context_menu(CMenu *menu);
  75.     void execute_context_menu(int id);
  76. };
  77.  
  78. class cEditableMovingStructureWaypoint : public cEditableWaypoint
  79. {
  80. public:
  81.     cEditableMovingStructureWaypoint(cGameObject *obj, cSpot *waypoint, int select) : cEditableWaypoint(obj, waypoint, select) {}
  82.  
  83.     void create_context_menu(CMenu *menu);
  84.     void execute_context_menu(int id);
  85. };
  86.  
  87. class cEditableTurret : public cEditableGameObject
  88. {
  89. public:
  90.     cEditableTurret(cTurret *obj, int select) : cEditableGameObject(obj, select) {}
  91.  
  92.     void write();
  93.     void create_context_menu(CMenu *menu);
  94.     void execute_context_menu(int id);
  95. };
  96.